home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PCMania 30
/
PCMania CD30.iso
/
pcmania
/
magia30
/
programa.bas
Wrap
BASIC Source File
|
1995-02-19
|
3KB
|
98 lines
'Este programa calcula la dinámica de la civilización Maya
SCREEN 12
'Significado de las constantes y variables
'alc: Vida media de la población
'alm: Vida media de los monumentos
'ampc: Media de monumentos por persona
'c: Población
'cbr: Tasa de natalidad
'cdr: Tasa de mortalidad
'cfp: Población dedicada a la producción de alimentos
'cmc: Población dedicada a construir monumentos
'cpc: Construcción por persona
'dmpc: Monumentos demandados por persona
'fcmc: Fracción de población dedicada a construir monumentos
'fp: Producción de alimentos
'fpc: Comida por persona
'ircmc:Indicador de la fracción de población dedicada a construir monumentos
'm: Número de monumentos
'mcr: Tasa de construcción de monumentos
'mdr: Tasa de destrucción de monumentos
'mhl: Nivel sanitario de la población
'mpc: Monumentos por persona
'rcmc: Fracción de población dedicada a construir monumentos
'tampc:Tiempo para promediar los monumentos por persona
'tcr: Tiempo para cambiar la rcmc
'****************************
'Se asignan valores iniciales a las variables de las cuatro ecuaciones
'diferenciales
'Población inicial
c = 4000000
'Número de monumentos inicial
m = 1000
'Fracción de población inicial dedicada a construir monumentos
rcmc = .25
'Media inicial de monumentos por persona
ampc = .00025
'****************************
'Se asignan valores a las constantes y variables de las ecuaciones
'Las constantes que empiezan por n corresponden a los valores normales de
'la variable que hay después de la n
alm = 1000 'años
nalc = 25 'años
ncfp = 3300000 'personas
ncpc = .00025 'monumentos/persona
ncbr = .041 'personas/personas/año
nfp = 9.2E+08 'kg/año
nfpc = 230 'kg/persona/año
nmpc = .00025 'monumentos/persona
tampc = 20 'años
tcr = 75 'años
'Frecuencia con la que se calculan las ecuaciones diferenciales
f = .1
'Bucle principal
FOR t = 1 TO 550
'Se calculan las variables auxiliares
fcmc = rcmc / (rcmc + 1)
cfp = c * (1 - fcmc)
fp = cfp / ncfp
fpc = fp * nfp / c
mhl = fpc / nfpc
alc = nalc * mhl
cbr = c * ncbr
cdr = c / alc
cmc = c * fcmc
cpc = ncpc * mhl
mcr = cmc * cpc
mdr = m / alm
dmpc = nmpc * mhl
ircmc = rcmc * ampc / dmpc
mpc = m / c
'********************
'Primera ecuación diferencial
c = c + (cbr - cdr) * f
IF c < 0 THEN c = 0: EXIT FOR
'********************
'Segunda ecuación diferencial
m = m + (mcr - mdr) * f
'********************
'Tercera ecuación diferencial
rcmc = rcmc + ((ircmc - rcmc) / tcr) * f
'********************
'Cuarta ecuación diferencial
ampc = ampc + ((mpc - ampc) / tampc) * f
'Se imprimen las curvas
LINE (1, 300)-(550, 300)
LINE (1, 300)-(1, 100)
PSET (t, 300 - c / 30000), 1
PSET (t, 300 - m / 70), 2
NEXT
LOCATE 22, 2: PRINT "Población final: "; INT(c)
LOCATE 23, 2: PRINT "Número de monumentos: "; INT(m)